报告背景

本报告探讨了红酒的质量和其各种化学性质的关系,并探索是什么带来了更高质量的红酒。报告所用的数据集由由 Paulo Cortez 等人创建,该数据集包含 13 个变量的 1599 个观察值。⾄少 3 名葡萄酒专家对每种酒的质量进⾏了评分,分数在 0(⾮常差)和 10(⾮常好)之间,最小等级差为1。了解更多数据集信息

单位说明

除了以百分比测量酒精成分外,测量化学成分的所有其他变量都以体积计。(mg/dm3 或 g/dm3)

数据概要

## [1] 1599   13
## 'data.frame':    1599 obs. of  13 variables:
##  $ X                   : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ fixed.acidity       : num  7.4 7.8 7.8 11.2 7.4 7.4 7.9 7.3 7.8 7.5 ...
##  $ volatile.acidity    : num  0.7 0.88 0.76 0.28 0.7 0.66 0.6 0.65 0.58 0.5 ...
##  $ citric.acid         : num  0 0 0.04 0.56 0 0 0.06 0 0.02 0.36 ...
##  $ residual.sugar      : num  1.9 2.6 2.3 1.9 1.9 1.8 1.6 1.2 2 6.1 ...
##  $ chlorides           : num  0.076 0.098 0.092 0.075 0.076 0.075 0.069 0.065 0.073 0.071 ...
##  $ free.sulfur.dioxide : num  11 25 15 17 11 13 15 15 9 17 ...
##  $ total.sulfur.dioxide: num  34 67 54 60 34 40 59 21 18 102 ...
##  $ density             : num  0.998 0.997 0.997 0.998 0.998 ...
##  $ pH                  : num  3.51 3.2 3.26 3.16 3.51 3.51 3.3 3.39 3.36 3.35 ...
##  $ sulphates           : num  0.56 0.68 0.65 0.58 0.56 0.56 0.46 0.47 0.57 0.8 ...
##  $ alcohol             : num  9.4 9.8 9.8 9.8 9.4 9.4 9.4 10 9.5 10.5 ...
##  $ quality             : int  5 5 5 6 5 5 5 7 7 5 ...
##        X          fixed.acidity   volatile.acidity  citric.acid   
##  Min.   :   1.0   Min.   : 4.60   Min.   :0.1200   Min.   :0.000  
##  1st Qu.: 400.5   1st Qu.: 7.10   1st Qu.:0.3900   1st Qu.:0.090  
##  Median : 800.0   Median : 7.90   Median :0.5200   Median :0.260  
##  Mean   : 800.0   Mean   : 8.32   Mean   :0.5278   Mean   :0.271  
##  3rd Qu.:1199.5   3rd Qu.: 9.20   3rd Qu.:0.6400   3rd Qu.:0.420  
##  Max.   :1599.0   Max.   :15.90   Max.   :1.5800   Max.   :1.000  
##  residual.sugar     chlorides       free.sulfur.dioxide
##  Min.   : 0.900   Min.   :0.01200   Min.   : 1.00      
##  1st Qu.: 1.900   1st Qu.:0.07000   1st Qu.: 7.00      
##  Median : 2.200   Median :0.07900   Median :14.00      
##  Mean   : 2.539   Mean   :0.08747   Mean   :15.87      
##  3rd Qu.: 2.600   3rd Qu.:0.09000   3rd Qu.:21.00      
##  Max.   :15.500   Max.   :0.61100   Max.   :72.00      
##  total.sulfur.dioxide    density             pH          sulphates     
##  Min.   :  6.00       Min.   :0.9901   Min.   :2.740   Min.   :0.3300  
##  1st Qu.: 22.00       1st Qu.:0.9956   1st Qu.:3.210   1st Qu.:0.5500  
##  Median : 38.00       Median :0.9968   Median :3.310   Median :0.6200  
##  Mean   : 46.47       Mean   :0.9967   Mean   :3.311   Mean   :0.6581  
##  3rd Qu.: 62.00       3rd Qu.:0.9978   3rd Qu.:3.400   3rd Qu.:0.7300  
##  Max.   :289.00       Max.   :1.0037   Max.   :4.010   Max.   :2.0000  
##     alcohol         quality     
##  Min.   : 8.40   Min.   :3.000  
##  1st Qu.: 9.50   1st Qu.:5.000  
##  Median :10.20   Median :6.000  
##  Mean   :10.42   Mean   :5.636  
##  3rd Qu.:11.10   3rd Qu.:6.000  
##  Max.   :14.90   Max.   :8.000

初步观察:

单变量图

对 12 个单变量进行绘图,快速了解数据分布,也有助于引导分析。

接下来依次分析单个变量

质量

红酒质量是我们要探索的因变量,首先对它进行分析。

红酒质量的分布比较接近正态分布,这里有个问题,就是数据集种缺少 0,1,2,9,10 等级的红酒数据,这可能会给我们的分析带来影响。

大多数红酒质量处于 5 和 6 ,为了更好区分红酒的质量,创建一个新变量grade对质量进行等级划分,低(等级 0-4),中(等级 5-6),高(等级 7-10)。这在之后的分析中将会用到。

## 
##    low(0-4) medium(5-6)  high(7-10) 
##          63        1319         217

分级后,低、中、高质量等级的红酒数量依次是 63、1319、217。

酸有关变量

在概览图中观察到固定酸度、挥发酸度、柠檬酸度都存在偏斜,对它们进行 log10 转换以更好观察数据分布。PH 的分布接近正态分布不用处理。

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    4.60    7.10    7.90    8.32    9.20   15.90
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.1200  0.3900  0.5200  0.5278  0.6400  1.5800
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   0.090   0.260   0.271   0.420   1.000
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   2.740   3.210   3.310   3.311   3.400   4.010
  • 固定酸度:大多数红酒的固定酸度为 7.5 g/dm3。固定酸度中位数为 7.9,平均值为 8.32。有几个特别高的异常值。
  • 挥发酸度:挥发酸度实际上就是在品尝红酒时“酸”的味觉感受来源,根据经验,这对红酒质量的影响是不利的。 挥发酸度中位数为 0.52 g/dm3,平均值为 0.5278 g/dm3
  • 柠檬酸:中位数为 0.26g/dm3,平均值为 0.271 g/dm3,可以观察到存在着许多 0 值。
  • PH:中位 pH 值为 3.31,平均 pH 值为 3.371。

残余糖量

根据数据集背景资料得知,残糖量就是在进行发酵后产生的糖。在数据集中,平均残糖量为 2.539 g/dm3 ,中位数为 2.2。残糖量的分布存在比较明显的长尾,进行 log10 变换后分布更好些。根据经验,红酒的甜味也能带来好的口感,但过分的甜味可能导致红酒的质量变差。

氯化物

氯化物实际上是红酒中盐的成分,同样存在严重的长尾,根据观察可以有一个猜测,高氯化物含量意味着品质差的红酒。

二氧化硫

总二氧化硫包括了游离的二氧化硫,因此将它们绘制在一起,并进行 log10 转换。

游离二氧化硫的中位数为 14mg/dm3,平均值为 15.87mg/dm3。根据经验,游离二氧化硫带给我们刺鼻的嗅觉反馈,所以可以预测二氧化硫含量高的红酒品质比较差。

总二氧化硫的平均值为 46.47mg/dm3,中位数为38mg/dm3

硫酸盐

硫酸盐也存在着一定的正偏斜,同样进行 log10 转换。

大多数葡萄酒含有 0.2-0.8g/dm3 的硫酸盐,中位数为 0.62g/dm3,平均量为0.6581g/dm3。硫酸盐能够帮助红酒储存更长的时间。

密度

可以看到,密度的分布非常“好”,红酒的密度大部分取决于糖和酒精的含量。密度中位数为 0.9968g/dm3 ,平均值为 0.9978g/dm3

酒精

酒精对于红酒来说应该是相当重要的一个组成部分,数据集中平均酒精含量为10.42%,中位数为10.2%。

单变量分析

数据集结构

数据集中包含 1599 种红酒的观察值,12 个变量。其中包括 1 个因变量(质量)和 11 个自变量。

数据集中的主要特征

初步认为红酒质量可能受 酒精、挥发性酸 的影响比较大。

数据集中还有哪些其他功能可以帮助您调查您的兴趣特征?

氯化物和残留糖量或许也影响红葡萄酒的质量,因为它们能影响口感和味道。

您是否从数据集中的现有变量创建了任何新变量?

是的,根据质量的等级分数,创建了一个新变量 grade,将质量分为 低(0-4)、中(5-6)、高(8-10)三个等级

是否有不寻常的分布?您是否对数据执行任何操作以整理,调整或更改数据的形式?如果是这样,你为什么这么做?

存在一些偏斜分布和长尾分布,对数据进行了 log10 转换处理来初步探索,需要在之后进行更深入分析时才能判断什么样的处理是有效的。

双变量图与双变量分析

绘制散点图矩阵来了解红酒中化学性质与质量,及各变量之间的关系

可以得知,和红酒质量最相关的 4 个因素是:

酒精 vs 质量

酒精和红酒质量相关性最大,绘制它们的散点图。

为了更好观察趋势,添加抖动和趋势线

quality通过 factor 转换成分类变量(因为质量系数都是整数),这样更容易观察。并且转换为分类变量之后绘制箱线图可以体现出比散点图更加丰富的信息。

观察每个质量等级红酒的平均酒精含量,总体上也呈现线性趋势,最高质量的红酒有着最高的酒精含量

加入grade来观察分布

用同样的方法对其他几个变量进行分析

挥发酸度 vs 质量

挥发酸度和红酒质量间负相关,高品质的红酒中挥发酸度很低。这一点符合我们的经验认知,挥发酸度能降低红酒的好口感。

硫酸盐( log10 ) vs 质量

分布的偏斜比较明显,对硫酸盐数据进行 log 变换

再计算相关系数

## 
##  Pearson's product-moment correlation
## 
## data:  log10(redwine$sulphates) and redwine$quality
## t = 12.967, df = 1597, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.2636092 0.3523323
## sample estimates:
##       cor 
## 0.3086419

可以看到,进行 log 变换后的硫酸盐,相关系数为 0.309,高于原始的 0.251;和红酒质量间存在较强的正相关。

柠檬酸 vs 质量

当红酒质量上升时,其中的柠檬酸含量也有所增加,虽然幅度不是很大,但硫酸盐和红酒质量件仍存在轻微的正相关。

其他变量之间相关性

谈谈你在这部分调查中观察到的一些关系。感兴趣的功能与数据集中的其他功能有何不同?

  • 酒精和红酒质量呈较强正相关,红酒的最高质量是酒精的最高平均值。
  • 是硫酸盐(log10)与红酒质量呈较强正相关
  • 挥发酸度和红酒质量呈负相关。大部分质量为 8 的红酒的挥发酸度为 0.3〜0.5,而质量为 3 的红酒的挥发酸度大于 0.4。
  • 红酒质量也和柠檬酸含量呈正相关。大多数葡萄酒中少量柠檬酸不超过 0.8,大多数品质最高的葡萄酒(7或8),柠檬酸含量在 0.25~0.5 之间。质量为 3 的红酒,柠檬酸低达 0。

是否观察到其他功能之间的任何有趣的关系(不是感兴趣的主要特征)?

  • 固定酸度和柠檬酸强正相关,cor = 0.672
  • 固定酸度和密度强正相关,cor = 0.668
  • 固定酸度和 PH 强负相关,cor = -0.683
  • 挥发酸度和柠檬酸强负相关,cor = -0.552
  • 柠檬酸和 PH 强负相关,cor = -0.542
  • 密度和酒精强负相关,cor = -0.496

你发现最强的关系是什么?

  • 和红酒质量关系最强的是酒精
  • 任何两个变量之间最强的关系是在 PH 和固定酸度之间

多变量图

酒精、挥发酸度 vs 质量

在酒精与质量的二维关系上,加入挥发酸度变量,并添加抖动

用另一个维度来观察

加入`grade`来对质量等级分区

高质量的红酒拥有更高的酒精和更低的挥发酸度。

酒精、硫酸盐 vs 质量

更高质量的红酒具有较高的硫酸盐。

酒精、柠檬酸 vs 质量

更高质量的红酒具有较高的柠檬酸,但相关性不是非常强。

线性模型

尝试建立一个多变量线性模型来预测红酒质量。

## 
## Calls:
## m1: lm(formula = quality ~ alcohol, data = redwine)
## m2: lm(formula = quality ~ alcohol + volatile.acidity, data = redwine)
## m3: lm(formula = quality ~ alcohol + volatile.acidity + log10(sulphates), 
##     data = redwine)
## m4: lm(formula = quality ~ alcohol + volatile.acidity + log10(sulphates) + 
##     citric.acid, data = redwine)
## m5: lm(formula = quality ~ alcohol + volatile.acidity + log10(sulphates) + 
##     citric.acid + pH, data = redwine)
## m6: lm(formula = quality ~ alcohol + volatile.acidity + log10(sulphates) + 
##     citric.acid + pH + chlorides, data = redwine)
## m7: lm(formula = quality ~ alcohol + volatile.acidity + log10(sulphates) + 
##     citric.acid + pH + chlorides + total.sulfur.dioxide, data = redwine)
## 
## =====================================================================================================
##                            m1         m2         m3         m4         m5         m6         m7      
## -----------------------------------------------------------------------------------------------------
##   (Intercept)            1.875***   3.095***   3.369***   3.444***   5.037***   5.603***   5.819***  
##                         (0.175)    (0.184)    (0.184)    (0.196)    (0.449)    (0.462)    (0.461)    
##   alcohol                0.361***   0.314***   0.303***   0.303***   0.323***   0.305***   0.290***  
##                         (0.017)    (0.016)    (0.016)    (0.016)    (0.016)    (0.017)    (0.017)    
##   volatile.acidity                 -1.384***  -1.156***  -1.217***  -1.235***  -1.109***  -1.061***  
##                                    (0.095)    (0.097)    (0.112)    (0.112)    (0.114)    (0.114)    
##   log10(sulphates)                             1.477***   1.518***   1.513***   1.824***   1.864***  
##                                               (0.177)    (0.181)    (0.180)    (0.190)    (0.190)    
##   citric.acid                                            -0.113     -0.357**   -0.272*    -0.226     
##                                                          (0.103)    (0.120)    (0.120)    (0.120)    
##   pH                                                                -0.521***  -0.596***  -0.590***  
##                                                                     (0.132)    (0.132)    (0.132)    
##   chlorides                                                                    -1.896***  -1.968***  
##                                                                                (0.394)    (0.392)    
##   total.sulfur.dioxide                                                                    -0.002***  
##                                                                                           (0.001)    
## -----------------------------------------------------------------------------------------------------
##   R-squared                 0.227      0.317      0.345      0.346      0.352      0.362      0.369  
##   adj. R-squared            0.226      0.316      0.344      0.344      0.350      0.359      0.367  
##   sigma                     0.710      0.668      0.654      0.654      0.651      0.646      0.643  
##   F                       468.267    370.379    280.646    210.808    173.273    150.259    133.167  
##   p                         0.000      0.000      0.000      0.000      0.000      0.000      0.000  
##   Log-likelihood        -1721.057  -1621.814  -1587.752  -1587.153  -1579.425  -1567.885  -1557.943  
##   Deviance                805.870    711.796    682.108    681.597    675.040    665.367    657.144  
##   AIC                    3448.114   3251.628   3185.503   3186.306   3172.850   3151.769   3133.885  
##   BIC                    3464.245   3273.136   3212.389   3218.569   3210.490   3194.786   3182.280  
##   N                      1599       1599       1599       1599       1599       1599       1599      
## =====================================================================================================

该模型可以描述为:

redwine_quality = 5.819 + 0.29alcohol - 1.061volatile.acidity + 1.864log10(sulphates) - 0.226citric.acid - 0.59pH - 1.968cholorides-0.002*total.sulfur.dioxide

虽然 R-squared 只有 0.369,不是一个很准确的预测模型。主要的原因可能是数据集中数据有限,且采用评分的来衡量红酒质量也有很大的限制。

尝试探讨 R 值低的原因

grade中的两端等级来作图

从这张图就可以看出,挥发酸度、硫酸盐、柠檬酸和红酒质量的相关性在逐渐减弱,以至于无法直接定论柠檬酸成分的含量多少决定了红酒质量好坏。但也许是因为受到其他成分的影响柠檬酸的作用被覆盖了。这也许可以解释为什么预估线性模型的 R 值仅有 0.369。正是各种化学成分的特定组合带来了更好的红酒,而不仅仅是某几种成分就能决定。当然酒精和挥发酸度的影响不可忽视。

总结

总结一:酒精对红酒质量的影响

通过相关系数计算,得出酒精含量对红酒质量的影响最大

酒精和红酒质量正相关,高质量的红酒有着更高的酒精含量。

总结二:影响红酒质量的主要因素

高质量的红酒倾向于具有较高的酒精含量和较低的挥发酸度含量,同时,也倾向于具有较高的硫酸盐和较高的柠檬酸含量。

总结三:关键变量的 3D 图

双击右侧图例,可以筛选观察各个质量等级的红酒,在酒精、硫酸盐、挥发酸度这三个变量影响下的分布。

复盘

挫折和挑战

  • 因变量(红酒质量)与自变量之间没有强相关性,每个质量水平有异常值可能影响分析。

  • 用来分析的数据集缺少所有质量等级的数据且不平衡,有许多中等级的数据点(5、6),低等级(3、4)和高等级(7、8)的数据点数量都很少。如果数据集在低端和高端都有更多记录,则可以提高分析质量。我们可以更确定化学成分与葡萄酒质量之间是否存在显着的相关性。

  • 红酒质量的品鉴可能偏于主观,用线性模型来预测过于简化了,比如味道和香气这样细微的差别不能通过化学性质来判断。好的红酒应该是各种化学成分和品牌等附加值的完美组合。

一点进步

在总结部分,使用了 plotly 包来进行 3D 绘图展现 4 个变量间的关系,同时还提供了交互的可视化,在之后的数据分析中,应该会经常用到这个包。

后续分析建议

  • 扩大数据集。一方面是添加更多的观测值,另一方面则是完善各个质量等级红酒的数据。
  • 对红酒质量的描述更精确,比如评分更细化或采用更不受主观意识影响的评定机制。虽然专家都是专业的红酒品鉴师,但还是过于个人和主观了
  • 添加品牌、年份等非化学性质变量,这样数据集可能会变得更有趣些,进行另一个方向上的探讨。